﻿#ifndef __GAF_TEXT_H__
#define __GAF_TEXT_H__

#include "GAF_Define.h"

namespace GAF
{
	typedef int FontStyle;
	//class Graphics -* ForEach
		class Text;
}
typedef GAF::FontStyle			GAF_DFontStyle;
typedef GAF::Text			GAF_CText;

#include "GAF_Graphics.h"

namespace GAF
{
	enum FontStyleType
	{
		// 正常
		FONT_NORMAL		= 0x00,
		// 粗体
		FONT_BOLD		= 0x01,
		// 斜体
		FONT_ITALIC		= 0x02,
		// 下划线
		FONT_UNDERLINE		= 0x04,
		// 删除线
		FONT_STRIKETHROUGH	= 0x08,
	};
}
typedef GAF::FontStyleType		GAF_EFontStyleType;		/// 字体样式
#define GAF_FONT_NORMAL			GAF::FONT_NORMAL		/// 正常
#define GAF_FONT_BOLD			GAF::FONT_BOLD			/// 粗体
#define GAF_FONT_ITALIC			GAF::FONT_ITALIC		/// 斜体
#define GAF_FONT_UNDERLINE		GAF::FONT_UNDERLINE		/// 下划线
#define GAF_FONT_STRIKETHROUGH		GAF::FONT_STRIKETHROUGH		/// 删除线


namespace GAF
{
	/// 文字标签类
	class Text : public Graphics
	{
	public:
		enum
		{
			ATTRIB_FONTSIZE		= ATTRIB_OTHER
		};

	public:
		Text();
		virtual ~Text();

	public:
		DIM_ATTRIB(STD_STRING, Text);
		DIM_ATTRIB(STD_STRING, FontFile);
		DIM_ATTRIB(UINT, FontSize);
		DIM_ATTRIB(FontStyle, FontStyle);
		DIM_ATTRIB(int, Space);
		DIM_ATTRIB(Colour, FrontColour);
		DIM_ATTRIB(Colour, BackColour);
		DIM_ATTRIB(ImageHandle, Texture);
		DIM_ATTRIB(UINT, StrokeSize);
		DIM_ATTRIB(Colour, StrokeColour);

	public:
		UINT			GetSceneFontSize();
	};
}

#endif
